package com.itextpdf.text.pdf;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.itextpdf.testutils.TestResourceUtils;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
public class PdfReaderSelectPagesTest {
byte[] data;
File dataFile;
@Before
public void setUp() throws Exception {
TestResourceUtils.purgeTempFiles();
dataFile = TestResourceUtils.getResourceAsTempFile(this, "RomeoJuliet.pdf");
data = TestResourceUtils.getResourceAsByteArray(this, "RomeoJuliet.pdf");
}
@After
public void tearDown() throws Exception {
TestResourceUtils.purgeTempFiles();
}
@Test
public void test() throws Exception {
PdfReader reader = new PdfReader(dataFile.getAbsolutePath());
try{
reader.selectPages("4-8");
manipulateWithStamper(reader);
manipulateWithCopy(reader);
} finally {
reader.close();
}
}
/**
* Creates a new PDF based on the one in the reader
* @param reader a reader with a PDF file
* @throws IOException
* @throws DocumentException
*/
private void manipulateWithStamper(PdfReader reader)
throws IOException, DocumentException {
PdfStamper stamper = new PdfStamper(reader, new ByteArrayOutputStream());
stamper.close();
}
/**
* Creates a new PDF based on the one in the reader
* @param reader a reader with a PDF file
* @throws IOException
* @throws DocumentException
*/
private void manipulateWithCopy(PdfReader reader)
throws IOException, DocumentException {
int n = reader.getNumberOfPages();
Document document = new Document();
PdfCopy copy = new PdfCopy(document, new ByteArrayOutputStream());
document.open();
for (int i = 0; i < n;) {
copy.addPage(copy.getImportedPage(reader, ++i));
}
document.close();
}
}